const moment = require('moment');
/**
 * 获取当前时间戳
 */
const curTimeStamp = () => {
	return moment().valueOf();
}
/**
 * 根据天数获取毫秒级别的时间戳
 * @param { Number } n 天数
 */
const timeStamp = (n = 30) => {
	return curTimeStamp() + 24 * 60 * 60 * 1000 * n;
}
/**
 * 将时间戳转换成标准时间
 */
const timeStampToStand = (v, format = "YYYY-MM-DD HH:mm:ss") => {
	return new Date().getTimezoneOffset() == 0 ? moment(v).add(8, 'hours').format(format) : moment(v).format(format);
}
/**
 * 获取当前季度的年和季度
 */
function getQuarter() {
	// 获取当前日期
	const now = new Date();
	// 获取当前年份
	const year = now.getFullYear();
	// 获取当前月份（0-11，0表示一月，1表示二月，依此类推）
	const month = now.getMonth();
	// 根据月份计算当前时间是第几季度
	const quarter = Math.ceil((month + 1) / 3);
	return {
		year,
		quarter
	}
}
/**
 * 根据年+季度获取开始和结束时间戳
 * @param {Object} year
 * @param {Object} quarter
 */
function getQuarterStartEndTimestamp(year, quarter) {
	const firstDay = new Date(year, (quarter - 1) * 3, 1);
	const lastDay = new Date(year, quarter * 3, 0);
	return {
		start: firstDay.getTime(),
		end: lastDay.setHours(23, 59, 59, 999), // 设置时间为当天的最后一刻
	}
}
module.exports = {
	curTimeStamp,
	timeStamp,
	timeStampToStand,
	getQuarter,
	getQuarterStartEndTimestamp
}